package com.ruoyi.data.mapper;

import com.ruoyi.data.domain.DataScore;
import com.ruoyi.data.domain.DataScoreExchange;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 积分记录Mapper接口
 *
 * @author zzp
 * @date 2022-09-30
 */
public interface DataScoreMapper {
    /**
     * 查询积分记录
     *
     * @param id 积分记录主键
     * @return 积分记录
     */
    public DataScore selectDataScoreById(Long id);

    /**
     * 查询积分记录列表
     *
     * @param dataScore 积分记录
     * @return 积分记录集合
     */
    public List<DataScore> selectDataScoreList(DataScore dataScore);

    /**
     * 新增积分记录
     *
     * @param dataScore 积分记录
     * @return 结果
     */
    public int insertDataScore(DataScore dataScore);

    /**
     * 修改积分记录
     *
     * @param dataScore 积分记录
     * @return 结果
     */
    public int updateDataScore(DataScore dataScore);

    /**
     * 删除积分记录
     *
     * @param id 积分记录主键
     * @return 结果
     */
    public int deleteDataScoreById(Long id);

    /**
     * 批量删除积分记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDataScoreByIds(Long[] ids);

    /**
     * 积分记录-会员ID
     *
     * @param userId
     * @param scoreType
     * @return
     */
    List<DataScore> selectDataScoreListByUserId(@Param("userId") Long userId, @Param("scoreType") String scoreType);

    /**
     * 兑换积分列表
     *
     * @param dataScore
     * @return
     */
    List<DataScore> selectDataScoreExchangeList(DataScore dataScore);

    /**
     * 批量插入
     *
     * @param exchangeList
     * @return
     */
    int batchInsert(@Param("exchangeList") List<DataScore> exchangeList);

    /**
     * 兑换列表导出
     *
     * @param dataScore
     * @return
     */
    List<DataScoreExchange> selectDataScoreExchangeListExport(DataScore dataScore);
}
